package com.wangsd.web.service.account.imp;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wangsd.web.entity.account.Payout;
import com.wangsd.web.mapper.account.PayoutMapper;
import com.wangsd.web.service.account.PayoutService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class PayoutServiceImp implements PayoutService {

    @Resource
    private PayoutMapper payoutMapper;

    /**
     * 存款
     * @param payout 账目信息
     * @return 格式化信息
     */
    @Override
    public boolean save(Payout payout) {
        return payoutMapper.insert(payout) > 0;
    }

    /**
     * 删除账单信息
     * @param billId 账单Id
     * @return 格式化信息
     */
    @Override
    public boolean delete(Integer billId) {
        return payoutMapper.deleteById(billId) > 0;
    }

    /**
     * 修改账单信息
     * @param payout 账单试题
     * @return 格式化信息
     */
    @Override
    public boolean modify(Payout payout) {
        return payoutMapper.updateById(payout) > 0;
    }

    /**
     * 通过Id获取账单信息信息
     * @param billId 账单Id
     * @return 账单信息
     */
    @Override
    public Payout getDetailsById(Integer billId) {
        return payoutMapper.selectById(billId);
    }

    /**
     * 获取最新十条记录
     * @return 格式化信息
     */
    @Override
    public List<Payout> getTen(Page<Payout> page) {
        return payoutMapper.selectPage(page, null).getRecords();
    }

    /**
     * 获取全部信息
     * @return 格式化信息
     */
    @Override
    public List<Payout> getAll() {
        return payoutMapper.selectList(null);
    }

    /**
     * 获取指定用户的最新十条记录
     * @param userId 用户Id
     * @param page 分页插件
     * @return 格式化信息
     */
    @Override
    public List<Payout> getTenByUserId(Integer userId, Page<Payout> page) {
        QueryWrapper<Payout> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("userId", userId);
        return payoutMapper.selectPage(page, queryWrapper).getRecords();
    }

    /**
     * 获取指定用户的全部信息
     * @param userId 用户Id
     * @return 格式化信息
     */
    @Override
    public List<Payout> getAllByUserId(Integer userId) {
        QueryWrapper<Payout> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("userId", userId);
        return payoutMapper.selectList(queryWrapper);
    }
}